import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import path from "path"
import dotenv from "dotenv"

// 加载环境变量
dotenv.config()

// https://vite.dev/config/
export default defineConfig({
  base: process.env.VITE_BASE,
  build: {
    outDir: `.${process.env.VITE_BASE}`,
    rollupOptions: {
      output: {
        manualChunks: id => {
          // 将所有 Vue 相关库（包括 Element Plus）打包在一起
          if (id.includes("vue") || id.includes("element-plus")) {
            return "vue-vendor"
          }
          // 工具库
          if (id.includes("mockjs")) {
            return "utils"
          }
          // 其他第三方库
          if (id.includes("node_modules")) {
            return "vendor"
          }
        }
      }
    },
    // 优化构建配置
    chunkSizeWarningLimit: 1000,
    // 启用源码映射（可选，生产环境可以关闭）
    sourcemap: false
  },
  plugins: [vue()],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src")
    }
  },
  // 优化依赖预构建
  optimizeDeps: {
    include: ["element-plus", "vue", "vue-router", "mockjs"]
  }
})
